Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(object_merger): merge known objects #8718

Draft
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

emuemuJP
Copy link

@emuemuJP emuemuJP commented Sep 2, 2024

Description

The current algorithm removes Unknown objects if they overlap, but not otherwise.
By this change, the ROI with the highest probability and confidence of existence is retained when known objects overlap.

Package autoware_launch needs to be changed because parameter changes due to the addition of merge known object function.

KnownObjectsOverlap

Related links

Parent Issue:

How was this PR tested?

  • pointpainting_roi_cluster_fusion_objects_before.webm
  • pointpainting_roi_cluster_fusion_objects_after.webm

Notes for reviewers

None.

Interface changes

None.

Effects on system behavior

None.

@github-actions github-actions bot added component:perception Advanced sensor data processing and environment understanding. (auto-assigned) tag:require-cuda-build-and-test labels Sep 2, 2024
Copy link

github-actions bot commented Sep 2, 2024

Thank you for contributing to the Autoware project!

🚧 If your pull request is in progress, switch it to draft mode.

Please ensure:

@emuemuJP emuemuJP changed the title Feat/merge known objects feat:merge known objects Sep 2, 2024
@emuemuJP emuemuJP changed the title feat:merge known objects feat(object_merger): merge known objects Sep 2, 2024
@github-actions github-actions bot added type:documentation Creating or refining documentation. (auto-assigned) component:planning Route planning, decision-making, and navigation. (auto-assigned) component:control Vehicle control algorithms and mechanisms. (auto-assigned) type:ci Continuous Integration (CI) processes and testing. (auto-assigned) component:launch Launch files, scripts and initialization tools. (auto-assigned) component:common Common packages from the autoware-common repository. (auto-assigned) and removed type:documentation Creating or refining documentation. (auto-assigned) component:planning Route planning, decision-making, and navigation. (auto-assigned) component:control Vehicle control algorithms and mechanisms. (auto-assigned) type:ci Continuous Integration (CI) processes and testing. (auto-assigned) component:launch Launch files, scripts and initialization tools. (auto-assigned) component:common Common packages from the autoware-common repository. (auto-assigned) labels Sep 2, 2024
Copy link
Contributor

@Owen-Liuyuxuan Owen-Liuyuxuan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please check the comments for expected improvements in the codes

@@ -224,6 +252,49 @@ void ObjectAssociationMergerNode::objectsCallback(
}
}

// Remove overlapped known object
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Please integrate the two pieces of code; unknown objects and known objects now have similar coding structures. Please integrate them together.
  2. Regarding efficiency, please optimize the looping, for now, all objects will be compared twice.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally similar, but there are some minor differences that may not be as significant as the benefits of putting them together.
First, sorting improves code efficiency.

object1.kinematics.pose_with_covariance.pose, object2.kinematics.pose_with_covariance.pose);
if (sq_distance_threshold < sq_distance) return false;

const auto precision = object_recognition_utils::get2dPrecision(object1, object2);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please use a different set of parameters for thresholds.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Added param for known objects.

  • Added unknown keywords to existing parameter names.

@emuemuJP
Copy link
Author

emuemuJP commented Sep 7, 2024

Checked processing time changes object_association_merger/debug/processing_time_ms.
Changed from approximately 3 ms to 6 ms.

process_without_known_obj_merger.webm
process_with_known_obj_merger.webm

@emuemuJP
Copy link
Author

emuemuJP commented Sep 9, 2024

Related pull requests
Parameter changes due to the addition of merge known object function in object merge node

autowarefoundation/autoware_launch#1159

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component:perception Advanced sensor data processing and environment understanding. (auto-assigned) tag:require-cuda-build-and-test
Projects
Status: To triage
Development

Successfully merging this pull request may close these issues.

2 participants